<?php

namespace app\api\controller;

use app\common\controller\Api;
use DateTime;
use think\Cache;
use think\Db;

/**
 * 示例接口
 */
class Demo extends Api
{

    //如果$noNeedLogin为空表示所有接口都需要登录才能请求
    //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
    //如果接口已经设置无需登录,那也就无需鉴权了
    //
    // 无需登录的接口,*表示全部
    protected $noNeedLogin = ['test', 'test1'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = ['test2'];

    /**
     * 测试方法
     *
     * @ApiTitle    (测试名称)
     * @ApiSummary  (测试描述信息)
     * @ApiMethod   (POST)
     * @ApiRoute    (/api/demo/test/id/{id}/name/{name})
     * @ApiHeaders  (name=token, type=string, required=true, description="请求的Token")
     * @ApiParams   (name="id", type="integer", required=true, description="会员ID")
     * @ApiParams   (name="name", type="string", required=true, description="用户名")
     * @ApiParams   (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
     * @ApiReturnParams   (name="code", type="integer", required=true, sample="0")
     * @ApiReturnParams   (name="msg", type="string", required=true, sample="返回成功")
     * @ApiReturnParams   (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
     * @ApiReturn   ({
         'code':'1',
         'msg':'返回成功'
        })
     */
    public function test()
    {
        // // 获取本月第一周的开始日期（周一）
        // $firstMondayOfMonth = new DateTime('first monday of this month');
        // $startDate = $firstMondayOfMonth->format('Y-m-d');
        
        // // 获取本月第一周的结束日期（周日）
        // $firstSundayOfMonth = new DateTime('first sunday of this month');
        // $endDate = $firstSundayOfMonth->format('Y-m-d');
        
        // echo "本月第一周的开始日期是：" . $startDate . "\n";
        // echo "本月第一周的结束日期是：" . $endDate . "\n";

        // Cache::set('admin_id_' . 1, 'ssssssssssss', 30);

        // $arr = array_map('intval', explode(',', '1'));

        // $arr = Db::name('dts_config_produce')->column('id');

        // $arr = [];
        // for($i=66;$i<=91;$i++) {
        //     $arr[] = '日常物资'.$i;
        // }

        // $model = model('model/dts/activity/Notes');

        // $model = Db::name('user')->alias('user')
        //     ->join('dts_student stu', 'stu.user_id = user.id', 'left')
        //     ->where('user.id', 'in', [1,2])
        //     ->value('GROUP_CONCAT(DISTINCT stu.username,stu.relationship)');

        // $letModel = model('model/dts/approve/daily/let');

        
        // 假设你有一个字符串 $str
        $str = '这是一个需要每隔10个字符后添加换行符的字符串';
        $charset = mb_detect_encoding($str); // 获取原始字符串的编码格式
        // 使用preg_replace函数和正则表达式来实现
        $newStr = preg_replace('/(.{10})/', "$1\n", $str);

        $currtime = time();
        //当前天
        $currday = date('d', $currtime);

        $this->success('返回成功', $currday);
    }

    /**
     * 无需登录的接口
     *
     */
    public function test1()
    {
        // $woapi = new \fast\Woapi;
        // $result = Db::name('admin')->whereRaw('admitGuid is null')->select();
        // foreach($result as $items) {
        //     $data = $woapi->admitCreate($items['nickname'], $items['mobile'], '', '', '', '', '');
        //     Db::name('admin')->where('id', $items['id'])->update(['admitGuid' => $data['admitGuid']]);
        // }
        
        $this->success('返回成功', $result);
    }

    /**
     * 需要登录的接口
     *
     */
    public function test2()
    {
        $this->success('返回成功', ['action' => 'test2']);
    }

    /**
     * 需要登录且需要验证有相应组的权限
     *
     */
    public function test3()
    {
        $this->success('返回成功', ['action' => 'test3']);
    }

}
